#include<stdio.h>
#include<sys/mman.h>
#include<sys/types.h>
#include<fcntl.h>
#include<unistd.h>
#include<string.h>
#include<stdlib.h>
#include<sys/stat.h>

int main(int argc, char const *argv[])
{
    FILE *fp = fopen("test.txt", "w+");
    if (fp == NULL)
    {
        perror("fopen");
        exit(1);
    }

    // //一旦填满缓冲区立即将数据写入文件
    // int count = 0;
    // while(1){
    //     struct stat info;
    //     stat("test.txt", &info);
    //     if(info.st_size > 0)
    //         break;
    //     fputc('a', fp);
    //     count++;
    // }
    // printf("缓冲区大小=%d\n", count);


    // //程序正常退出时，缓冲区中的数据自动写入文件
    // fputc('a', fp);


    // //手动刷新缓冲区
    // fputc('A', fp);
    // fflush(fp);

    // //关闭文件时，缓冲区中的数据自动写入文件
    // fputc('B', fp);
    // fclose(fp);

    // //缓冲区改变会立即写入文件,默认全缓冲
    // char buf[512];//修改的缓冲区大小保持2的幂
    // fputc('C', fp);
    // setvbuf(fp, buf, _IONBF, 0);

    //读取文件会立即冲洗缓冲区
    fgetc(fp);
    pause();
    return 0;
}
